完整教程:how2j
1.在mysql安装目录bin下打开cmd shift+右键
2.具体操作
- 登陆
- mysql -u root -p
- mysql -u root -p
- 新建数据库 新建表
- 新建具体表项 select* from table;//查询表项
- 修改密码
- 导入数据库 .sql文件 先建数据库 然后 use 数据库名 ; source 路径(不需要;)
路径最好是某盘的下面,不然会出稀奇古怪的错误 - 导出数据库 mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
1
mysqldump -uroot -p Ticket > Ticket.sql
- 云服务器的数据库导入成功截图
- 多表查询
- inner join /left join 区别
给表添加外键 alter table card add constraint constraint_card foreign key(stuid) references student(stuid);
- 这句sql语句意思是:在card表中添加名为dormitoryid的外键约束。
删除表中的外键 alter table card drop foreign key constraint_card;
- 删除card表中的名为constraint_card的外键(表中的外键命名采用constraint_外键表名)
外键不删除,不能删除表
删除表中所有数据 delete from tablename;
删除带有外键约束的表中的数据
- SET FOREIGN_KEY_CHECKS=0;
- delete from tablename;
- SET FOREIGN_KEY_CHECKS=1;
向有约束的表插入数据是有限制的 在无锡实训7有介绍。
- 一对多关系 如:宿舍-学生 肯定先有宿舍信息再有学生。
- 先插宿舍,再插学生。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24create table dormitory(
dormitoryid varchar(10) primary key,
drcnitorytype varchar(10) not null
);
create table student(
stuid varchar(20) primary key,
stuname varchar(20) not null,
stuage int not null,
dormitoryid varchar(10)
);
create table card(
cardid varchar(10) primary key,
cardtype varchar(10) not null,
money int default 0,
stuid varchar(20)
);
//在card表声明一个student外键
alter table card add constraint constraint_card foreign key(stuid) references student(stuid);
//在student表中声明一个dormitory外键 叫constraint_student (中文:约束学生)
alter table student add constraint constraint_student foreign key(dormitoryid) references
dormitory(dormitoryid);
插入数据
- insert into dormitory values(‘A001’,’4persons’);
- insert into student values(‘S001’,’wangshicong’,28,’A001’);//相当于把Student放在A001房间。
- insert into card values(‘C001’,’ic_card’,800,’S001’);//相当于把卡放在学生S001中。
多表查询
- 将三张表等值连接后查询
1
select a.*,b.*,c.*from dormitory a inner join student b on a.dormitoryid=b.dormitoryid inner join card c on b.stuid=c.stuid;
- left join与inner join与right join
- 好奇怪:都一样 难道在一对多中无区别?
多对多关系的表 如何创建约束 如何进行多表查询
- 多对多关系:subject-student//student就用上面创的,注意:里面有个外键约束。
- 通过业务表SelectSubject建立约束
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23create table student(
stuid varchar(20) primary key,
stuname varchar(20) not null,
stuage int not null,
dormitoryid varchar(10)
);
create table subject(
subjectid varchar(20) primary key,
subjectname varchar(20) not null,
subjecttype varchar(10) not null
);
create table SelectSubject(
id int(5) primary key,
subjectid varchar(10) ,
stuid varchar(20)
);
//建立外键约束
alter table SelectSubject add constraint constraint_fk1 foreign key(subjectid) references subject(subjectid);
alter table SelectSubject add constraint constraint_fk2 foreign key(stuid) references student(stuid);
插入数据 先插student 再插subject 最后插SelectSuject
- insert into dormitory values(‘A002’,’6persons’);
- insert student values(‘S002’,’wangjinglin’,35,’A002’);
- insert subject values(‘SB001’,’math’,’like’);
- insert into SelectSubject values(1,’SB001’,’S001’);
多表查询-多对多关系表
三张表left链接后查询
1
select a.*,b.*,c.*from subject a left join SelectSubject b on a.subjectid=b.subjectid left join student c on b.stuid=c.stuid;
一条记录 left right inner 无差别 多条记录有差别